package com.wishu.finance.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wishu.finance.domain.JrProductResponseDto;
import com.wishu.finance.domain.TJrProduct;
import com.wishu.finance.enums.InstalmentPeriodTypeEnum;
import com.wishu.finance.enums.RepaymentTypeEnum;
import com.wishu.finance.mapper.TJrProductMapper;
import com.wishu.finance.service.TJrProductService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 25813
 * @description 针对表【t_jr_product(金融分期列表)】的数据库操作Service实现
 * @createDate 2023-04-27 18:48:28
 */
@Service
public class TJrProductServiceImpl extends ServiceImpl<TJrProductMapper, TJrProduct>
        implements TJrProductService {

    @Override
    public List<JrProductResponseDto> queryJrProduct(Integer index) {
        Map<String, Object> columnMap = new HashMap<String, Object>();
        //类型是收房贷
        columnMap.put("jr_product_type", index);
        //有被删除的记录
        columnMap.put("del_flg", 0);
        //根据map查询
        List<TJrProduct> list = baseMapper.selectByMap(columnMap);
        List<JrProductResponseDto> jrList = new ArrayList<>();
        for (TJrProduct jrProductEntity : list) {
            JrProductResponseDto jrProduct = new JrProductResponseDto();
            //金融分期ID
            jrProduct.setId(jrProductEntity.getId());
            //产品名称
            jrProduct.setJrProductName(jrProductEntity.getJrProductName());
            //资金提供方
            jrProduct.setCompanyName(jrProductEntity.getCompanyName());
            String accountInformation = "";
            //银行名称是否为空
            if (jrProductEntity.getBankName() != null || jrProductEntity.getBankName().equals("")) {
                //银行名称不为空拼接
                accountInformation += jrProductEntity.getBankName();
            }
            //银行卡号是否为空
            if (jrProductEntity.getBankCardNumber() != null || jrProductEntity.getBankCardNumber().equals("")) {
                //拼接出账户信息，银行名称+银行卡号
                accountInformation += jrProductEntity.getBankCardNumber();
            }
            //分期期限
            jrProduct.setInstalmentPeriod(jrProductEntity.getInstalmentPeriod());
            //分期期限名
            jrProduct.setInstalmentPeriodName(InstalmentPeriodTypeEnum.getName(jrProductEntity.getInstalmentPeriod().intValue()));
            //还款方式
            jrProduct.setRepaymentType(jrProductEntity.getRepaymentType());
            //还款方式名
            jrProduct.setRepaymentTypeName(RepaymentTypeEnum.getName(jrProductEntity.getRepaymentType()));
            //账户信息
            jrProduct.setAccountInformation(accountInformation);
            //授信额度
            jrProduct.setCreditLine(jrProductEntity.getCreditLine());
            //状态
            jrProduct.setDelFlg(jrProductEntity.getDelFlg());
            //保存进jrList
            jrList.add(jrProduct);
        }
        return jrList;
    }

    @Override
    public JrProductResponseDto productById(Long id, Integer index) {
        Map<String, Object> columnMap = new HashMap<String, Object>();
        //类型是收房贷
        columnMap.put("jr_product_type", index);
        //有被删除的记录
        columnMap.put("del_flg", 0);
        //金融产品的ID
        columnMap.put("id", id);
        //根据map查询
        List<TJrProduct> list = baseMapper.selectByMap(columnMap);
        List<JrProductResponseDto> jrList = new ArrayList<>();
        for (TJrProduct jrProductEntity : list) {
            JrProductResponseDto jrProduct = new JrProductResponseDto();
            //金融分期ID
            jrProduct.setId(jrProductEntity.getId());
            //产品名称
            jrProduct.setJrProductName(jrProductEntity.getJrProductName());
            //资金提供方
            jrProduct.setCompanyName(jrProductEntity.getCompanyName());
            String accountInformation = "";
            //银行名称是否为空
            if (jrProductEntity.getBankName() != null || jrProductEntity.getBankName().equals("")) {
                //银行名称不为空拼接
                accountInformation += jrProductEntity.getBankName();
            }
            //银行卡号是否为空
            if (jrProductEntity.getBankCardNumber() != null || jrProductEntity.getBankCardNumber().equals("")) {
                //拼接出账户信息，银行名称+银行卡号
                accountInformation += jrProductEntity.getBankCardNumber();
            }
            //分期期限
            jrProduct.setInstalmentPeriod(jrProductEntity.getInstalmentPeriod());
            //分期期限名
            jrProduct.setInstalmentPeriodName(InstalmentPeriodTypeEnum.getName(jrProductEntity.getInstalmentPeriod().intValue()));
            //还款方式
            jrProduct.setRepaymentType(jrProductEntity.getRepaymentType());
            //还款方式名
            jrProduct.setRepaymentTypeName(RepaymentTypeEnum.getName(jrProductEntity.getRepaymentType()));
            //账户信息
            jrProduct.setAccountInformation(accountInformation);
            //授信额度
            jrProduct.setCreditLine(jrProductEntity.getCreditLine());
            //状态
            jrProduct.setDelFlg(jrProductEntity.getDelFlg());
            //保存进jrList
            jrList.add(jrProduct);
        }
        return jrList.get(0);
    }
}




